package seqlist.oj;

public class Num206 {
    public ListNode reverseList(ListNode head) {
        //头插法
//        if(head==null || head.next==null){
//            return head;
//        }
//      ListNode newHead=null;
//      while (head!=null) {
//          //遍历原来的链表，取出值,并建立新的结点
//          ListNode node = new ListNode(head.val);
//          node.next = newHead;
//          newHead=node;
//          head = head.next;
//      }
//      return newHead;


        //原地反转链表
            if(head==null || head.next==null){
                return head;
            }
            ListNode prev=null;
            ListNode cur=head;
            while(cur!=null){
                ListNode next=cur.next;
                cur.next=prev;
                prev=cur;
                cur=next;
            }
            return prev;

        //递归
//        if(head==null|| head.next==null ){
//            return head;
//        }
//        ListNode secHead=head.next;
//        ListNode newHead=reverseList(head.next);
//        secHead.next=head;
//        head.next=null;
//        return  newHead;
    }

}
